iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
自我挑戰組

遊戲中的冰山一角-網路連線系列 第 14

Day14-遊戲連線基礎(13)-Rollback part 5

  • 分享至 

  • xImage
  •  

除了遊戲在設計上會在某些行動明定可以的派生(遊戲術語,指一個狀態下能夠做出的下一個動作)來預測外,還有一項條件在支撐這個架構,那就是rollback很重視狀態

狀態在遊戲領域上通常稱為狀態機(State machine),他與派生有點不同卻又類似,狀態機是凌駕在派生之上,派生只是其中的一部分,而狀態機最主要的目的是決定一個角色現在的行動模式與當他發生變化時,從現在的狀態能夠轉變成的狀態有哪些,如下圖:
https://ithelp.ithome.com.tw/upload/images/20220914/20151289ADaST6NuGE.png

而狀態與狀態之間的變化都會有一定的條件所以並不是能輕易就改變的,基於這點上使用預測的最大弊端也得到了改善,前面有提到rollback是不斷的去模擬遊戲讓遊戲保持著流暢執行絕不等待,那如果今天我在輸入了跳躍指令後對方也接收到了開始模擬我跳躍的行動,在這期間我又輸入了2.3.6.P(格鬥遊戲指令術語)但是網路發生問題導致這個指令較晚被對方收到,所以在對方玩家的遊戲中這個期間我是沒有輸入任何東西的,畫面上會持續播放我跳躍的動畫,等到指令抵達之後rollback去模擬發現我其實在這期間是有輸入指令的,但是這並不影響最終的結果,因為就跟一開始說的一樣狀態並非是能夠輕易就被改變的,即便在跳躍期間我輸入了指令但在遊戲設計上我在此狀態下的輸入是不被接受的,因此網路即便再慢延遲再高都能體驗流暢的戰鬥。
https://ithelp.ithome.com.tw/upload/images/20220914/20151289QpquhfCBp6.png

再加上一個動畫不可能太短,不然在畫面上根本不會看到一個角色做出了動作,少說都會有一秒甚至兩秒才能播放完畢,連段有可能還會超過十秒,如果在這期間玩家的輸入根本就不能影響狀態的改變,那就讓本地的遊戲不斷去執行與模擬就足夠了。

狀態與預測的雙重結合下讓rollback成為了格鬥遊戲連線上最佳的良藥,但也因為他設計複雜導致這功能即便不是很新但還是很多格鬥遊戲廠商不願意用的原因之一,深怕開發成本過高或是難以維護。


上一篇
Day13-遊戲連線基礎(12)-Rollback part 4
下一篇
Day15-遊戲連線基礎(14)-Rollback part 6
系列文
遊戲中的冰山一角-網路連線30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言